package cn.xyfmzmy.builder;

import netscape.javascript.JSObject;

public class Main {

    public static void main(String[] args) {
        // ====== 基础用法 =======
        User user = User.builder().name("xyf").age(23).build();

        // ====== DSL =========
        // 1.通过不同的api创建不同类型的builder，确保不会调用错误的api, 如select()时不会出现set()
        String sql1 = SQL.select().columns("name", "age").from("user").where("sex = '男").build();
        String sql2 = SQL.update().table("user").set("name", "xyf").set("age", "23").where("id = 1").build();
        System.out.println(sql1);
        System.out.println(sql2);
        // 2.将build过程分为多个阶段，确保某些api不会重复调用，从api层面隔绝错误，如无法重复调用table()
        String sql3= SQL.update().table("user").set("name", "xyf").set("age", "23").where("id = 1").build();
        System.out.println(sql3);
    }
}
